1. Field of the Present Invention
The present invention generally relates to the field of data processing networks. More particularly, the invention relates to a network and method for improving response time in server networks that use Network Attached Storage (NAS).
2. History of Related Art
In the field of network computing, networked storage including network attached storage (NAS) devices are well known. A NAS device is connected to a network, such as an Ethernet local area network (LAN), in the same manner as network servers and other computing devices are connected. Each NAS device is associated with a unique Internet Protocol (IP) address on the network. IP provides the basic communication protocol for a wide variety of computer networks including the Internet. IP is more fully documented in the Internet Engineering Task Force (IETF) Request for Comment (RFC) 791, which is incorporated by reference herein. Servers and NAS devices may use the Transmission Control Protocol (TCP) to communicate among themselves. The TCP protocol is usually layered on top of the IP protocol. Independently, clients and servers also may use the TCP protocol to communicate. The TCP protocol is more fully documented in Internet Engineering Task Force (IETF) Request for Comment (RFC) 793.
As a network entity, the NAS device is equally accessible from any computing device on the network thereby greatly increasing the ability to scale and optimize the storage needs of the network. Specifically, NAS devices allow the decomposition of server networks to storage-only components and diskless server components. This decomposition offers tremendous advantages to system administrators, including ease of deployment, system management, and enhanced scalability and reliability.
The flexibility offered by networked storage devices has changed the manner in which server networks are implemented. For instance, it is increasingly common to encounter web-based services being handled by one or more server devices, possibly diskless, that use a common set of networked storage boxes including NAS devices.
The widespread use of NAS devices can result, unfortunately, in additional and unwanted network traffic. Because NAS devices reside on the same network as the network servers, storage traffic (i.e., traffic between a server and a NAS device) travels over the same network and therefore competes with client-server traffic (including client requests to servers for files and the corresponding responses). The storage traffic on the server network reduces the bandwidth available for client-server traffic thereby potentially limiting overall network response and performance.
FIG. 1 presents a conceptual illustration of the process by which a client request for a file (or other form of data) may be serviced. Initially, a client 102 generates a request for data from a particular server 110. The request is transmitted to server 110 as a set of one or more network datagrams or packets 121 according to the TCP/IP protocol. The first packet 121 includes a destination address field containing the address of server 110 and a source address field containing the address of client 102. Both of the addresses are typically in IP compliant format.
For a variety of reasons, server 110 may not have a copy of the requested file available locally either in its system (volatile) memory or on disk (non-volatile) storage (if a local disk exists). When this occurs, server 110 may retrieve the file from a NAS device 112 by generating a second packet 122 having server 110 as the source address and NAS device 112 as the destination address. Packet 122 conforms to the TCP protocol. NAS device 112 will receive second packet 122, retrieve the requested file, and respond to the request from server 110 with a third packet 123 having NAS device 112 as the source address and server 110 as the destination address. Packet 123 also conforms to the TCP protocol. After receiving the requested files from NAS device 112, server 110 may then finally respond to the client request by generating a fourth packet 124 according to the TCP protocol, having server 110 as the source and client 102 as the destination and containing the originally requested file data.
It will be appreciated by those in the field of networked computing that the process described above undesirably results in extra network traffic. The four packets that are required to service the request must all travel over the server network. In addition, the generation and reception of each packet requires potentially significant network processing on the part of their respective senders and receivers. Each packet must be formatted according to the TCP/IP network protocol. Each server and client on the network contains code that formats requests and responses for travel over the network. Each packet sent over the network must descend a protocol stack at the source and ascend a stack at the destination.
In the example described above, a single client request resulted in the transmission of four sets of packets, each of which must traverse a protocol stack twice. In a traditional network where NAS boxes are not used (the disks reside locally at the server), only two such packets would have been necessary. It should be apparent that a potentially significant amount of network processing has occurred in satisfying the client request in a NAS-based environment. It would be beneficial to employ a server network and method that reduced the amount of network traffic and network processing that accompanies a client request to a server network employing networked storage. It would be further desirable if the implemented solution complied, to the extent possible, with existing protocols and networks.